The Obsolete
attribute can be applied with or without a message argument. Marking something Obsolete
without including
advice on why it’s obsolete or what to use instead will lead maintainers to waste time trying to figure those things out.
Noncompliant code example
Public Class Car
<Obsolete> ' Noncompliant
Public Sub CrankEngine(Turns As Integer)
' ...
End Sub
End Class
Compliant solution
Public Class Car
<Obsolete("Replaced by the automatic starter")>
Public Sub CrankEngine(Turns As Integer)
' ...
End Sub
End Class